a11y: Add tests for mnemonics
authorMatthias Clasen <mclasen@redhat.com>
Tue, 28 Jul 2020 20:34:01 +0000 (16:34 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 28 Jul 2020 22:16:37 +0000 (18:16 -0400)
We set up labelled-by accessible relations when
a label is set as mnemonic widget. Verify that that
happens as expected.

testsuite/a11y/label.c [new file with mode: 0644]
testsuite/a11y/meson.build

diff --git a/testsuite/a11y/label.c b/testsuite/a11y/label.c
new file mode 100644 (file)
index 0000000..29803d9
--- /dev/null
@@ -0,0 +1,43 @@
+#include <gtk/gtk.h>
+
+static void
+label_relations (void)
+{
+  GtkWidget *label = gtk_label_new ("a");
+  GtkWidget *label2 = gtk_label_new ("b");
+  GtkWidget *entry = gtk_entry_new ();
+  GList *list;
+
+  g_object_ref_sink (label);
+  g_object_ref_sink (label2);
+  g_object_ref_sink (entry);
+
+  gtk_test_accessible_assert_relation (GTK_ACCESSIBLE (entry), GTK_ACCESSIBLE_RELATION_LABELLED_BY, NULL);
+
+  gtk_widget_add_mnemonic_label (entry, label);
+
+  list = g_list_append (NULL, label);
+  gtk_test_accessible_assert_relation (GTK_ACCESSIBLE (entry), GTK_ACCESSIBLE_RELATION_LABELLED_BY, list);
+  g_list_free (list);
+
+  gtk_widget_add_mnemonic_label (entry, label2);
+
+  list = g_list_append (NULL, label);
+  list = g_list_append (list, label2);
+  gtk_test_accessible_assert_relation (GTK_ACCESSIBLE (entry), GTK_ACCESSIBLE_RELATION_LABELLED_BY, list);
+  g_list_free (list);
+
+  g_object_unref (entry);
+  g_object_unref (label);
+  g_object_unref (label2);
+}
+
+int
+main (int argc, char *argv[])
+{
+  gtk_test_init (&argc, &argv, NULL);
+
+  g_test_add_func ("/a11y/label/relations", label_relations);
+
+  return g_test_run ();
+}
index 81384c7bbf182ed17f3b4d802e109f6f1742d7ae..cd27dc80a267d857dae99068eb61e97737f1d973 100644 (file)
@@ -16,6 +16,7 @@ tests = [
   { 'name': 'dialog' },
   { 'name': 'entry' },
   { 'name': 'image' },
+  { 'name': 'label' },
   { 'name': 'progressbar' },
   { 'name': 'scrollbar' },
   { 'name': 'separator' },